import request from '../utils/request';

// 消息通知相关API
export const notificationsApi = {
  // 消息查询接口
  // 获取消息列表（支持分页）
  getNotificationsList: (params = {}) => {
    const { page = 1, size = 10, messageType, ...otherParams } = params;
    const queryParams = {
      page,
      size,
      ...(messageType && { messageType }),
      ...otherParams
    };
    return request.get('/api/api/v1/student/notifications/list', { params: queryParams });
  },

  // 刷新消息列表（获取最新20条消息）
  refreshNotifications: () => {
    return request.post('/api/api/v1/student/notifications/refresh');
  },

  // 获取消息详情
  getNotificationDetail: (id) => {
    return request.get(`/api/api/v1/student/notifications/${id}`);
  },

  // 获取未读消息数量
  getUnreadCount: () => {
    return request.get('/api/api/v1/student/notifications/unread-count');
  },

  // 获取消息统计信息
  getNotificationsStatistics: () => {
    return request.get('/api/api/v1/student/notifications/statistics');
  },

  // 获取支持的消息类型列表
  getNotificationTypes: () => {
    return request.get('/api/api/v1/student/notifications/types');
  },

  // 消息状态管理接口
  // 标记单个消息为已读
  markAsRead: (id) => {
    return request.put(`/api/api/v1/student/notifications/${id}/read`);
  },

  // 批量标记所有消息为已读
  markAllAsRead: () => {
    return request.put('/api/api/v1/student/notifications/read-all');
  },

  // 消息删除接口
  // 删除单个消息
  deleteNotification: (id) => {
    return request.delete(`/api/api/v1/student/notifications/${id}`);
  },

  // 删除所有消息
  deleteAllNotifications: () => {
    return request.delete('/api/api/v1/student/notifications/all');
  },

  // 企业用户的消息接口（如果需要）
  // 获取企业消息列表
  getEnterpriseNotificationsList: (params = {}) => {
    return request.get('/api/api/v1/enterprise/notifications/list', { params });
  },

  // 获取企业未读消息数量
  getEnterpriseUnreadCount: () => {
    return request.get('/api/api/v1/enterprise/notifications/unread-count');
  },

  // 标记企业消息为已读
  markEnterpriseAsRead: (id) => {
    return request.put(`/api/api/v1/enterprise/notifications/${id}/read`);
  },

  // 删除企业消息
  deleteEnterpriseNotification: (id) => {
    return request.delete(`/api/api/v1/enterprise/notifications/${id}`);
  }
}; 

/*
新的学生消息通知接口规范：

基础路径: /api/v1/student/notifications

1. GET /list - 获取消息列表（支持分页）
   - 参数: page, size, messageType
   - 响应: 包含分页信息和消息列表

2. POST /refresh - 刷新消息列表
   - 响应: 最新20条消息和统计信息

3. GET /{id} - 获取消息详情
   - 响应: 完整的消息信息

4. PUT /{id}/read - 标记消息为已读

5. PUT /read-all - 批量标记所有消息为已读

6. DELETE /{id} - 删除单条消息

7. DELETE /all - 删除所有消息

8. GET /unread-count - 获取未读消息数量

9. GET /statistics - 获取消息统计信息

10. GET /types - 获取消息类型列表

消息类型枚举:
- resume_review: 简历审核
- application_status: 申请状态  
- enterprise_contact: 企业联系
- password_change: 密码变更
- account_disabled: 账户禁用
- enterprise_certification: 企业认证
- demand_review: 需求审核
- matching_success: 匹配成功

字段映射:
- notificationId (原 id)
- messageType (原 type)
- isRead (原 is_read)
- sentTime (原 created_at)
- title, content 保持不变
*/ 